home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / xlisp.lbr / LONGJMP.AQM / longjmp.asm
Encoding:
Assembly Source File  |  1985-06-03  |  882 b   |  38 lines

  1.  
  2. CODE          SEGMENT   BYTE PUBLIC
  3.               ASSUME    CS:CODE
  4.  
  5.               PUBLIC    setjmp, longjmp
  6.  
  7. setjmp        PROC      NEAR
  8.  
  9.               POP       AX             ; Fetch return address from stack
  10.               POP       BX             ; Buffer pointer
  11.  
  12.               MOV       [BX],BP        ; Save BP
  13.               MOV       [BX+2],SP      ; , SP at return
  14.               MOV       [BX+4],AX      ; and IP
  15.  
  16.               PUSH      BX             ; Restore stack
  17.               PUSH      AX
  18.               RET
  19.  
  20. setjmp        ENDP
  21.  
  22.  
  23. longjmp       PROC      NEAR
  24.  
  25.               POP       AX
  26.               POP       BX
  27.               MOV       BP,[BX]
  28.               MOV       SP,[BX+2]
  29.               PUSH      AX
  30.  
  31.               MOV       AX,[BX+4]
  32.               JMP       AX
  33.  
  34. longjmp       ENDP
  35.  
  36. CODE          ENDS
  37.               END
  38.